#include <REGX52.H>

unsigned char NixieTable[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x7D,0x97,0x7F,0x6F, 0x77,0x7C,0x39,0x5E,0x79,0x71,0x00};

void Delay(unsigned char xms)		//@12.000MHz
{
	unsigned char i, j;

	while(xms--){
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}


void Nixie(unsigned char location, number) {
	
	switch(location) {
		
		case 1: 
			P2_4 = 1;
			P2_3 = 1;
			P2_2 = 1;
			break;		
		case 2: 
			P2_4 = 1;
			P2_3 = 1;
			P2_2 = 0;
			break;		
		case 3: 
			P2_4 = 1;
			P2_3 = 0;
			P2_2 = 1;
			break;		
		case 4: 
			P2_4 = 1;
			P2_3 = 0;
			P2_2 = 0;
			break;		
		case 5: 
			P2_4 = 0;
			P2_3 = 1;
			P2_2 = 1;
			break;		
		case 6: 
			P2_4 = 0;
			P2_3 = 1;
			P2_2 = 0;
			break;		
		case 7: 
			P2_4 = 0;
			P2_3 = 0;
			P2_2 = 1;
			break;		
		case 8: 
			P2_4 = 0;
			P2_3 = 0;
			P2_2 = 0;
			break;	
	}
	P0 = NixieTable[number];
	// 消影
	Delay(1);
	P0 = 0x00;
}

void main(){

	while(1){
		Nixie(1, 1);
		//Delay(20);
		Nixie(2, 2);
		//Delay(20);
		Nixie(3, 3);
		//Delay(20);
	}
}